<?php
include_once '../gerenciadores/AutoloadGerenciadores.php';


class GerenciadorDeCoordenadores{
	public function __construct(){
	}
	
	public function __destruct(){
	}
		
	public function lancaNotaDeAluno(Aluno $aluno, $nota, Disciplina $disciplina){
		__autoload("RepositorioMapaDeNotas");
		
		RepositorioMapaDeNotas::adicionaNota($aluno,$nota,$disciplina);
	}
	
	
	public function excluirPlanoDeAula($idPlano){
		__autoload("RepositorioPlanoDeAula");
		RepositorioPlanoDeAula::deletaPlano($idPlano);
	}
	
	
	public function lancaFaltaDeAluno(Aluno $aluno, Disciplina $disciplina, Turma $turma, $data, $qtd_faltas){
		__autoload("RepositorioAlunos");
		RepositorioAlunos::lancaFalta($aluno, $disciplina, $turma, $data, $qtd_faltas);
	}
	

	public function alteraNotaDeAluno(Nota $nota, Disciplina $disciplina){
		__autoload("RepositorioMapaDeNotas");
		
		RepositorioMapaDeNotas::alteraNota($nota, $disciplina);
		return true;
	}
	
	public function lancaDesistenciaInstrutor(InscricaoInstrutores $inscricao){
		__autoload("RepositorioInstrutor");
		RepositorioInstrutor::lancaDesistenciaInstrutor($inscricao);
	}
	
	
	public function exibeAvaliacaoInstrutores(Turma $turma){
		__autoload("RepositorioAvaliacaoInstrutores");
		return RepositorioAvaliacaoInstrutores::getTabelaAvaliacoes($turma);
	}
	
	
	public function visualizaTabelaInstrutores(Turma $turma){
		__autoload("RepositorioInstrutor");
		
		return RepositorioInstrutor::listaInstrutorTurma($turma);
	}
	
	
	
	public function visualizaTurma($idTurma){
		__autoload("RepositorioTurma");
		
		return RepositorioTurma::getTurma($idTurma);
	}
	
	
	
	public function visualizaTabelaAlunos(Turma $turma){
		__autoload("RepositorioAlunos");
		
		return RepositorioAlunos::getTabelaAlunosPorTurma($turma);
	}
	
	
	public function visualizaNotaDeAlunos(Turma $turma, Disciplina $disciplina, $avaliacao){
		__autoload("RepositorioMapaDeNotas");		
		$mapaDeNotas = RepositorioMapaDeNotas::exibeNotaAlunos($turma, $disciplina, $avaliacao);
		
		return $mapaDeNotas;
	}
	
	
	
	public function exibePlanosDeAula(Turma $turma, Pessoa $coordenador, $data){
		
		__autoload("RepositorioPlanoDeAula");
		
		return RepositorioPlanoDeAula::getPlanoDeAulaCoordenador($turma, $coordenador, $data);
			
	}
	
	
	
	public function alteraPlanoDeAula(PlanoDeAula $plano){
		__autoload("RepositorioPlanoDeAula");
		
		RepositorioPlanoDeAula::atualizaPlano($plano);
	}
	
	
	
	public  function deletaPlanoDeAula(int $idPlanoDeAula){
		__autoload("RepositorioPlanoDeAula");
		
		RepositorioPlanoDeAula::deletaPlano($idPlano);
	}
	
	
	
	public function getDisciplina($idDisciplina){
		__autoload("RepositorioDisciplina");
		
		$disciplina = RepositorioDisciplina::getDisciplina($idDisciplina);
		return $disciplina;
	}
	
	
	public function exibeDisciplinas($curso){
		__autoload("RepositorioDisciplina");
		
		return RepositorioDisciplina::getTabelaDisciplinaPorCurso($curso);
	}
	
	
	
	public function alteraSenha($cpf, $senha){
		__autoload("RepositorioDePessoas");
		__autoload("Cripto");
		__autoload("PessoaAtualizaException");
		
		$pessoa = RepositorioDePessoas::getPessoa($cpf);
		
		
		if(isset($pessoa)){
			$pessoa->setSenha($senha);
			RepositorioDePessoas::atualizaPessoa($pessoa);
		}
		
	}
	
	
	public function atualizaAluno(Aluno $aluno){
		__autoload("RepositorioAlunos");
		RepositorioAlunos::atualizaAluno($aluno);
		
	}
	
	public function exibeMapaDeFaltas(Cadastro $cadastro, $dataInicio, $dataFim){
		__autoload("RepositorioAlunos");
	
		return RepositorioAlunos::getFaltas($cadastro, $dataInicio, $dataFim);
	}
	
	public function deletaFalta(Falta $falta){
		__autoload("RepositorioAlunos");
		RepositorioAlunos::deletaFalta($falta);
	}
	
	public function excluiInscricao(InscricaoInstrutores $inscricao){
		__autoload("RepositorioInstrutor");
		RepositorioInstrutor::excluiInscricao($inscricao);
	}

}
?>